OpenVPN服务部署及使用文档

您所在的位置:网站首页 vmware horizon client 连接云服务器的端口 OpenVPN服务部署及使用文档

OpenVPN服务部署及使用文档

2023-06-07 20:02| 来源: 网络整理| 查看: 265

OpenVPN服务部署及使用文档

本文档目的为实现vpn便捷访问,使用闲置设备,绑定公网IP后,搭建vpn服务,使办公网设备访问池中其他无公网设备;

环境 云主机名 系统 内网IP 公网IP VPN服务端口 备注 openvpn服务器 CentOS7.9 172.17.1.65 123.247.xxx.xxx 1194 部署OpenVPN

原文档链接:在 CentOS7 上搭建 OpenVPN 服务端并添加用户 (babamumu.com)

安装openvpn及其他依赖 安装服务 yum -y install epel-release yum -y install openvpn easy-rsa iptables-services 配置IP地址转发

很重要,如果不配置,则无法实现vpn功能;

echo -e "###OpenVPN ADD\nnet.ipv4.conf.default.accept_source_route = 1\nnet.ipv4.conf.default.rp_filter = 0\nnet.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p 生成证书和密钥 查看文件

安装完openvpn服务端后,会生成/usr/share/easy-rsa/3.0.8/目录,其中保存的是生成证书用的工具;

[root@openvpn ~]# ls /usr/share/easy-rsa/3.0.8/ easyrsa openssl-easyrsa.cnf x509-types 创建目录 mkdir -p /etc/openvpn/easy-rsa/ 将所需文件复制到指定目录中 cp -r /usr/share/easy-rsa/3.0.8/* /etc/openvpn/easy-rsa/ cp /usr/share/doc/easy-rsa-3.0.8/vars.example /etc/openvpn/easy-rsa/vars 进入/etc/openvpn/easy-rsa/并编辑vars文件 cd /etc/openvpn/easy-rsa/ vim ./vars . . 102 set_var EASYRSA_REQ_COUNTRY "CN" 103 set_var EASYRSA_REQ_PROVINCE "LiaoNing" 104 set_var EASYRSA_REQ_CITY "ShenYang" 105 set_var EASYRSA_REQ_ORG "LNSZ" 106 set_var EASYRSA_REQ_EMAIL "[email protected]" 107 set_var EASYRSA_REQ_OU "Lnsz test vpn" . . 生效变量 source ./vars 生成CA根证书 ./easyrsa init-pki ./easyrsa build-ca nopass 生成 OpenVPN 服务器证书和密钥 ./easyrsa build-server-full remitProd nopass #第一个参数 remitProd 为证书名称 ./easyrsa gen-dh openvpn --genkey --secret ta.key #如果出现警告 #WARNING: Using --genkey --secret filename is DEPRECATED. Use --genkey secret filename instead. #则执行下面的命令 openvpn --genkey secret ta.key 复制证书及密钥文件 cd /etc/openvpn/ cp /etc/openvpn/easy-rsa/{pki/dh.pem,pki/ca.crt,ta.key,pki/issued/remitProd.crt,pki/private/remitProd.key} /etc/openvpn/ 配置OpenVPN服务 cd /etc/openvpn/ vim server.conf #local 123.57.xxx.xxx #指定监听的本机IP(因为有些计算机具备多个IP地址),该命令是可选的,默认监听所有IP地址 port 1194 #服务端端口号 proto tcp #通过tcp协议来连接,也可以通过udp dev tun #路由模式,注意windows下必须使用dev tap ca /etc/openvpn/ca.crt #ca证书存放位置 cert /etc/openvpn/remitProd.crt #服务器证书存放位置 key /etc/openvpn/remitProd.key # #服务器密钥存放位置 dh /etc/openvpn/dh.pem #dh.pem存放位置 tls-auth /etc/openvpn/ta.key 0 #ta.key存放位置 server 20.20.20.0 255.255.255.0 #虚拟局域网网段设置 ifconfig-pool-persist ipp.txt client-to-client #开启客户端互访 duplicate-cn #支持一个证书多个客户端登录使用,建议不启用 keepalive 10 120 cipher AES-128-CBC #comp-lzo max-clients 100 #最大客户端并发连接数量 user nobody group nobody persist-key persist-tun status openvpn-status.log verb 3 log /var/log/openvpn/openvpn.log log-append /var/log/openvpn/openvpn.log push "route 172.17.1.0 255.255.255.0" #实际内网ip网段 配置iptables和selinux

在安装centos系统后,初始化阶段应关闭selinux服务;

配置iptables规则实现ip转发

注意:以下内容中的地址是vpn的虚拟地址,应与配置文件保持一致。而且如果系统开启了firewalld,则需要同时开放1194端口;

systemctl enable iptables && systemctl start iptables iptables -F # 清理所有防火墙规则 iptables -t nat -A POSTROUTING -s 20.20.20.0/24 -j MASQUERADE iptables-save > /etc/sysconfig/iptables # iptables 规则持久化保存 服务启动测试 systemctl start openvpn@server && systemctl enable openvpn@server

服务启动后,需要确认服务状态是否正常,并且端口是否开启;

[root@openvpn openvpn]# systemctl status openvpn@server ● [email protected] - OpenVPN Robust And Highly Flexible Tunneling Application On server Loaded: loaded (/usr/lib/systemd/system/[email protected]; disabled; vendor preset: disabled) Active: active (running) since Tue 2023-05-30 14:41:10 CST; 1h 6min ago Main PID: 22860 (openvpn) Status: "Initialization Sequence Completed" CGroup: /system.slice/system-openvpn.slice/[email protected] └─22860 /usr/sbin/openvpn --cd /etc/openvpn/ --config server.conf May 30 14:41:10 openvpn systemd[1]: Starting OpenVPN Robust And Highly Flexible Tunneling Application On server... May 30 14:41:10 openvpn systemd[1]: Started OpenVPN Robust And Highly Flexible Tunneling Application On server. [root@openvpn openvpn]# ss -tunl Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port . . tcp LISTEN 0 32 *:1194 *:* . .

服务管理命令

systemctl start openvpn@server # 启动服务; systemctl stop openvpn@server # 关闭服务; systemctl status openvpn@server # 查询服务状态; 创建client端配置文件及证书文件

原文当中使用脚本方式实现半自动用户管理;

创建脚本保存目录 mkdir /etc/openvpn/client 创建配置模板文件 cd /etc/openvpn/client vim sample.ovpn #!/bin/bash client remote 123.247.xxx.xxx 1194 # 此处为该vpn服务器的公网地址,例:remote 106.12.1.1 1194 dev tun proto tcp ca /etc/openvpn/ca.crt cert /etc/openvpn/client.crt key /etc/openvpn/client.key tls-auth /etc/openvpn/ta.key 1 remote-cert-tls server resolv-retry infinite nobind persist-key persist-tun #comp-lzo verb 3 mute-replay-warnings 创建添加vpn用户脚本 vim ovpn_user.sh # ! /bin/bash set -e OVPN_USER_KEYS_DIR=/etc/openvpn/client/keys EASY_RSA_DIR=/etc/openvpn/easy-rsa/ PKI_DIR=$EASY_RSA_DIR/pki for user in "$@" do if [ -d "$OVPN_USER_KEYS_DIR/$user" ]; then rm -rf $OVPN_USER_KEYS_DIR/$user rm -rf $PKI_DIR/reqs/$user.req sed -i '/'"$user"'/d' $PKI_DIR/index.txt fi cd $EASY_RSA_DIR # 生成客户端SSL证书文件 ./easyrsa build-client-full $user nopass # 整理下生成的文件 mkdir -p $OVPN_USER_KEYS_DIR/$user cp $PKI_DIR/ca.crt $OVPN_USER_KEYS_DIR/$user/ # CA 根证书 cp $PKI_DIR/issued/$user.crt $OVPN_USER_KEYS_DIR/$user/ # 客户端证书 cp $PKI_DIR/private/$user.key $OVPN_USER_KEYS_DIR/$user/ # 客户端证书密钥 cp /etc/openvpn/client/sample.ovpn $OVPN_USER_KEYS_DIR/$user/$user.ovpn # 客户端配置文件 sed -i 's/client.crt/'"$user".crt'/g' $OVPN_USER_KEYS_DIR/$user/$user.ovpn sed -i 's/client.key/'"$user".key'/g' $OVPN_USER_KEYS_DIR/$user/$user.ovpn cp $EASY_RSA_DIR/ta.key $OVPN_USER_KEYS_DIR/$user/ta.key # auth-tls 文件 cd $OVPN_USER_KEYS_DIR zip -r $user.zip $user done exit 0 脚本测试 bash ovpn_user.sh [要添加的vpn用户名] 示例 bash ovpn_user.sh test

创建完成后可以在/etc/openvpn/client/keys/下看到相关文件

[root@openvpn openvpn]# ls /etc/openvpn/client/keys/ test test.zip 创建删除vpn用户脚本 vim del_ovpn_user.sh #!/bin/bash set -e OVPN_USER_KEYS_DIR=/etc/openvpn/client/keys EASY_RSA_DIR=/etc/openvpn/easy-rsa/ for user in "$@" do cd $EASY_RSA_DIR echo -e 'yes\n' | ./easyrsa revoke $user ./easyrsa gen-crl # 吊销掉证书后清理客户端相关文件 if [ -d "$OVPN_USER_KEYS_DIR/$user" ]; then rm -rf $OVPN_USER_KEYS_DIR/${user}* fi systemctl restart openvpn@server done exit 0

使用方式与添加用户脚本相同;

windows连接测试 下载并安装client端

下载地址(可能需要翻墙):https://openvpn.net/client/

下载完成后直接安装即可;

下载添加的vpn用户中的压缩包 [root@openvpn openvpn]# ls client/keys/ test test.zip 连接VPN测试

打开openvpn客户端,点击右下方+,选择FILE,将之前下载的压缩包中test.ovpn文件加载进去即可;

之后就可以进行访问测试了,步骤略;



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3